this._workspaces = [];
this._checkWorkspacesId = 0;
- this._pauseWorkspaceCheck = false;
-
let tracker = Shell.WindowTracker.get_default();
tracker.connect('startup-sequence-changed', Lang.bind(this, this._queueCheckWorkspaces));
return new Gio.Settings({ schema_id: 'org.gnome.mutter' });
},
- blockUpdates: function() {
- this._pauseWorkspaceCheck = true;
- },
-
- unblockUpdates: function() {
- this._pauseWorkspaceCheck = false;
- },
-
_checkWorkspaces: function() {
let i;
let emptyWorkspaces = [];
return false;
}
- // Update workspaces only if Dynamic Workspace Management has not been paused by some other function
- if (this._pauseWorkspaceCheck)
- return true;
-
for (i = 0; i < this._workspaces.length; i++) {
let lastRemoved = this._workspaces[i]._lastRemovedWindow;
if ((lastRemoved &&
this._allowedKeybindings = {};
- this._isWorkspacePrepended = false;
-
this._switchData = null;
this._shellwm.connect('kill-switch-workspace', Lang.bind(this, this._switchWorkspaceDone));
this._shellwm.connect('kill-window-effects', Lang.bind(this, function (shellwm, actor) {
if (!Meta.prefs_get_dynamic_workspaces())
return;
- global.screen.append_new_workspace(false, global.get_current_time());
-
let windows = global.get_window_actors().map(function(winActor) {
return winActor.meta_window;
});
} else if (isNaN(target)) {
// Prepend a new workspace dynamically
if (screen.get_active_workspace_index() == 0 &&
- action == 'move' && target == 'up' && this._isWorkspacePrepended == false) {
+ action == 'move' && target == 'up')
this.insertWorkspace(0);
- this._isWorkspacePrepended = true;
- }
direction = Meta.MotionDirection[target.toUpperCase()];
newWs = screen.get_active_workspace().get_neighbor(direction);
if (!Main.overview.visible) {
if (this._workspaceSwitcherPopup == null) {
- this._workspaceTracker.blockUpdates();
this._workspaceSwitcherPopup = new WorkspaceSwitcherPopup.WorkspaceSwitcherPopup();
this._workspaceSwitcherPopup.connect('destroy', Lang.bind(this, function() {
- this._workspaceTracker.unblockUpdates();
this._workspaceSwitcherPopup = null;
- this._isWorkspacePrepended = false;
}));
}
this._workspaceSwitcherPopup.display(direction, newWs.index());